package com.dizang.es.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

//@Accessors @Data 是lombok的注解
//6.0版本以后，一个index下，只允许创建一个type，不允许存在多个type 并且在官网提供信息，7.0以后不再使用type。
@Data
@Accessors(chain = true)
@Document(indexName = "wgaituwang", type = "product",shards = 1,replicas = 0)//必须小写
public class WgProduct implements Serializable {
    /*
    不需要中文分词的字段设置成@Field(type = FieldType.Keyword)类型，需要中文分词的设置成@Field(analyzer = "ik_max_word",type = FieldType.Text)类型。
    * */
    private static final long serialVersionUID = -1L;

    @Id
    private String id;//必须添加@Id注解，最好为String类型
    @Field(analyzer = "ik_max_word",type = FieldType.Text)//IK分词器
    private String name;//商品名称
    private String productAddress;//商品出产地
    private String keywords;//商品关键字
    @Field(analyzer = "ik_max_word",type = FieldType.Text)
    private String title;//商品标题
    private Double price;//价格
//    private String time;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date time;
    /*
    {
    "id" : "1",
    "name" : "火龙果",
    "productAddress" : "北京天安门",
    "keywords" : "水果",
    "title" : "香甜可口的火龙果",
    "price" : "100",
    "time" : "2020-03-27"
    }
    */
}
